package _09_Method;

/**
 * 重载 Overload 唯一性 方法名相同,参数列表不同,叫方法重载 参数列表不同: 1.个数不同 2.类型不同
 * 
 * 一定要注意,重载和返回值 以及修饰符列表 都没有关系
 * 
 * @author lenovo
 * @Date 2020年6月28日
 * @Time 下午6:23:02
 */
public class Method_08 {
	public static void main(String[] args) {
		System.out.println(Colculate.sumInt(1, 2));
		System.out.println(Colculate.sumDouble(1.2, 2.3));
		System.out.println(Colculate.sumLong(1274684l, 22354641l));
		// 上面的这种情况,功能相同,名字不同,代码太多,不好记,太难看

		int i = 2;
		System.out.println(Colculate.sum(1, 2));
		System.out.println(Colculate.sum(1, 52.32));
		System.out.println(Colculate.sum(1165l, 2315));

		// 分析一下方法是否是重载
		System.out.println(1);
		System.out.println(1.2);
		System.out.println(true);
		System.out.println("------");
		System.out.println('a');
	}

	public static void m1() {

	}

	int m1(int i) {
		return 1;

	}

	int m1(double i) {
		return 1;
	}

	int m1(int i, int a) {
		return 1;
	}

	int m1(long i, int a) {
		return 1;
	}

	int m1(int i, long a) {
		return 1;
	}

	int m1(int i, double a) {
		return 1;
	}
}

class Colculate {
	public void m1() {
		System.out.println("---==============---");
	}

	public static int sumInt(int a, int b) {
		return a + b;
	}

	public static double sumDouble(double a, double b) {
		return a + b;
	}

	public static long sumLong(long a, long b) {
		return a + b;
	}

	public static int sum(int a, int b) {
		return a + b;
	}

	public static long sum(long a, long b) {
		return a + b;
	}

	public static double sum(double a, double b) {
		return a + b;
	}
}